exten next olur mu ne demek?

Exten Next: Asterisk Arama Planlama Sisteminde Bir Kavram

Exten Next, Asterisk tabanlı IP Santral sistemlerinde kullanılan bir özelliktir. Temelde, bir arama planı (dialplan) içerisinde, bir uzantının (extension) işlenmesinin ardından hangi uzantının işleneceğine karar verme mekanizmasıdır. Arama planları, gelen çağrıların nasıl yönlendirileceğini, hangi uygulamaların çalıştırılacağını ve hangi eylemlerin gerçekleştirileceğini tanımlayan bir dizi komut ve talimat içerir. Exten Next, bu planların akışını kontrol etmede kritik bir rol oynar.

Temel Kavramlar

  • Uzantı (Extension): Bir arama planındaki temel yapı taşıdır. Bir numara, harf dizisi veya kalıp olabilir. Gelen bir çağrı, arama planındaki bir uzantıyla eşleştiğinde, o uzantıya ait komutlar çalıştırılır.
  • Arama Planı (Dialplan): Asterisk'in davranışını tanımlayan bir dizi talimat ve komuttan oluşan yapılandırma dosyasıdır. extensions.conf dosyası en yaygın kullanılan arama planı dosyasıdır.
  • Context (Bağlam): Arama planının bölümlerini birbirinden ayırır. Her context, kendi uzantılarını ve kurallarını içerebilir. Çağrılar genellikle belirli bir context içinde başlar ve buradan diğer context'lere yönlendirilebilir.
  • Priority (Öncelik): Bir uzantı içinde, komutların hangi sırada çalıştırılacağını belirler. Genellikle sayılarla ifade edilir (1, 2, 3, ...). Aynı uzantı için birden fazla priority olabilir.

Exten Next'in İşlevi

Exten Next, bir uzantının işlenmesi tamamlandıktan sonra, arama planının hangi adımla devam edeceğini belirler. Asterisk, bir uzantı içinde tanımlanan komutları çalıştırdıktan sonra, genellikle bir sonraki priority'ye geçer. Ancak, Goto veya Hangup gibi komutlar kullanılarak bu akış değiştirilebilir. Exten Next kavramı, varsayılan akışın nasıl işlediğini anlamak için önemlidir.

Örnek Senaryo:

Aşağıdaki örnek, basit bir arama planı snippet'ini göstermektedir:

[dahili]
exten => 1000,1,Answer()
exten => 1000,n,Wait(1)
exten => 1000,n,Playback(hello-world)
exten => 1000,n,Hangup()

Bu örnekte:

  • [dahili] bir context'i tanımlar.
  • exten => 1000 uzantısı 1000'i tanımlar.
  • 1, Answer() ilk priority'yi ve çalıştırılacak komutu belirtir (çağrıyı cevapla).
  • n, Wait(1) "n" kısaltması, bir önceki priority'den sonra gelen bir sonraki kullanılabilir priority anlamına gelir (bir saniye bekle).
  • n, Playback(hello-world) "hello-world" ses dosyasını çal.
  • n, Hangup() çağrıyı sonlandır.

Bu durumda, Asterisk, 1000 uzantısını arayan bir çağrı aldığında, sırasıyla Answer, Wait, Playback ve Hangup komutlarını çalıştırır. Exten Next prensibi gereği, her komut tamamlandıktan sonra bir sonraki priority'deki komut çalıştırılır.

Exten Next'in Önemi

  • Akış Kontrolü: Arama planlarının karmaşıklığı arttıkça, Exten Next prensibi, arama akışının doğru ve öngörülebilir bir şekilde ilerlemesini sağlar.
  • Hata Ayıklama: Arama planlarında hata ayıklarken, Exten Next prensibini anlamak, sorunların kaynağını belirlemede yardımcı olur. Yanlış bir priority veya eksik bir komut, arama akışının beklenmedik şekilde davranmasına neden olabilir.
  • Esneklik: Asterisk'in sunduğu diğer komutlarla (örneğin, Goto, Gosub) birlikte kullanıldığında, Exten Next, çok çeşitli arama senaryolarını destekleyecek esnek çözümler oluşturulmasına olanak tanır.

Alternatifler ve İleri Düzey Kullanım

  • Goto: Arama planında belirli bir uzantıya veya priority'ye atlamak için kullanılır. Örneğin: Goto(dahili,2000,1)
  • Gosub: Arama planında bir alt rutin (subroutine) çağırmak için kullanılır. Alt rutin tamamlandıktan sonra, çağrı Gosub komutunun hemen ardından gelen priority'den devam eder.
  • AGI (Asterisk Gateway Interface): Harici programlama dilleri (örneğin, Python, PHP) ile Asterisk'i entegre etmek için kullanılır. AGI scriptleri, arama planı içinde çağrılabilir ve daha karmaşık işlemler gerçekleştirebilir.
  • FastAGI: AGI'nin daha hızlı ve verimli bir versiyonudur. TCP/IP üzerinden harici programlarla iletişim kurar.

Sonuç

Exten Next, Asterisk arama planlamasının temel bir bileşenidir. Arama akışının nasıl işlediğini anlamak, karmaşık arama senaryolarını tasarlamak ve sorun gidermek için önemlidir. Arama planlama konusunda uzmanlaşmak isteyen herkesin, Exten Next prensibini iyi anlaması gerekmektedir.

Kendi sorunu sor